<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Kinetis Bootloader: Property Store</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="nxp_logo_small.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Kinetis Bootloader
   &#160;<span id="projectnumber">2.0.0</span>
   </div>
   <div id="projectbrief">Common bootloader for Kinetis devices</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Introduction</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__property.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">Property Store</div>  </div>
</div><!--header-->
<div class="contents">

<p>Properties of the bootloader.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:structbootloader__configuration__data__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#structbootloader__configuration__data__t">bootloader_configuration_data_t</a></td></tr>
<tr class="memdesc:structbootloader__configuration__data__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Format of bootloader configuration data on Flash.  <a href="group__property.html#structbootloader__configuration__data__t">More...</a><br /></td></tr>
<tr class="separator:structbootloader__configuration__data__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structreserved__region__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#structreserved__region__t">reserved_region_t</a></td></tr>
<tr class="memdesc:structreserved__region__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure of a reserved regions entry.  <a href="group__property.html#structreserved__region__t">More...</a><br /></td></tr>
<tr class="separator:structreserved__region__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structunique__device__id__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#structunique__device__id__t">unique_device_id_t</a></td></tr>
<tr class="memdesc:structunique__device__id__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure of a unique device id.  <a href="group__property.html#structunique__device__id__t">More...</a><br /></td></tr>
<tr class="separator:structunique__device__id__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structexternal__memory__property__store__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#structexternal__memory__property__store__t">external_memory_property_store_t</a></td></tr>
<tr class="memdesc:structexternal__memory__property__store__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Exernal Memory attribute store.  <a href="group__property.html#structexternal__memory__property__store__t">More...</a><br /></td></tr>
<tr class="separator:structexternal__memory__property__store__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structproperty__store__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#structproperty__store__t">property_store_t</a></td></tr>
<tr class="memdesc:structproperty__store__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure of property store.  <a href="group__property.html#structproperty__store__t">More...</a><br /></td></tr>
<tr class="separator:structproperty__store__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structexternal__memory__property__interface__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#structexternal__memory__property__interface__t">external_memory_property_interface_t</a></td></tr>
<tr class="memdesc:structexternal__memory__property__interface__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">External Memory properties interface.  <a href="group__property.html#structexternal__memory__property__interface__t">More...</a><br /></td></tr>
<tr class="separator:structexternal__memory__property__interface__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structproperty__interface__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#structproperty__interface__t">property_interface_t</a></td></tr>
<tr class="memdesc:structproperty__interface__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to property operations.  <a href="group__property.html#structproperty__interface__t">More...</a><br /></td></tr>
<tr class="separator:structproperty__interface__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga326fa6765219cb92ffe88f4b278a9db8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#ga326fa6765219cb92ffe88f4b278a9db8">_property_errors</a> { <br />
&#160;&#160;<b>kStatus_UnknownProperty</b> = MAKE_STATUS(kStatusGroup_PropertyStore, 0), 
<br />
&#160;&#160;<a class="el" href="group__property.html#gga326fa6765219cb92ffe88f4b278a9db8a540263d2a8073c4722e48ea95ab275e7">kStatus_ReadOnlyProperty</a> = MAKE_STATUS(kStatusGroup_PropertyStore, 1), 
<br />
&#160;&#160;<a class="el" href="group__property.html#gga326fa6765219cb92ffe88f4b278a9db8a0b21eb7761eeea48cf273146faeb2bdc">kStatus_InvalidPropertyValue</a> = MAKE_STATUS(kStatusGroup_PropertyStore, 2)
<br />
 }<tr class="memdesc:ga326fa6765219cb92ffe88f4b278a9db8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Property store status codes.  <a href="group__property.html#ga326fa6765219cb92ffe88f4b278a9db8">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:ga326fa6765219cb92ffe88f4b278a9db8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa62a138d226f0b00f623df0db68d59a9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#gaa62a138d226f0b00f623df0db68d59a9">_property_tag</a> { <br />
&#160;&#160;<b>kPropertyTag_ListProperties</b> = 0x00, 
<br />
&#160;&#160;<b>kPropertyTag_BootloaderVersion</b> = 0x01, 
<br />
&#160;&#160;<b>kPropertyTag_AvailablePeripherals</b> = 0x02, 
<br />
&#160;&#160;<b>kPropertyTag_FlashStartAddress</b> = 0x03, 
<br />
&#160;&#160;<b>kPropertyTag_FlashSizeInBytes</b> = 0x04, 
<br />
&#160;&#160;<b>kPropertyTag_FlashSectorSize</b> = 0x05, 
<br />
&#160;&#160;<b>kPropertyTag_FlashBlockCount</b> = 0x06, 
<br />
&#160;&#160;<b>kPropertyTag_AvailableCommands</b> = 0x07, 
<br />
&#160;&#160;<b>kPropertyTag_CrcCheckStatus</b> = 0x08, 
<br />
&#160;&#160;<b>kPropertyTag_Reserved9</b> = 0x09, 
<br />
&#160;&#160;<b>kPropertyTag_VerifyWrites</b> = 0x0a, 
<br />
&#160;&#160;<b>kPropertyTag_MaxPacketSize</b> = 0x0b, 
<br />
&#160;&#160;<b>kPropertyTag_ReservedRegions</b> = 0x0c, 
<br />
&#160;&#160;<b>kPropertyTag_Reserved13</b> = 0x0d, 
<br />
&#160;&#160;<b>kPropertyTag_RAMStartAddress</b> = 0x0e, 
<br />
&#160;&#160;<b>kPropertyTag_RAMSizeInBytes</b> = 0x0f, 
<br />
&#160;&#160;<b>kPropertyTag_SystemDeviceId</b> = 0x10, 
<br />
&#160;&#160;<b>kPropertyTag_FlashSecurityState</b> = 0x11, 
<br />
&#160;&#160;<b>kPropertyTag_UniqueDeviceId</b> = 0x12, 
<br />
&#160;&#160;<b>kPropertyTag_FacSupport</b> = 0x13, 
<br />
&#160;&#160;<b>kPropertyTag_FlashAccessSegmentSize</b> = 0x14, 
<br />
&#160;&#160;<b>kPropertyTag_FlashAccessSegmentCount</b> = 0x15, 
<br />
&#160;&#160;<b>kPropertyTag_FlashReadMargin</b> = 0x16, 
<br />
&#160;&#160;<b>kPropertyTag_QspiInitStatus</b> = 0x17, 
<br />
&#160;&#160;<b>kPropertyTag_TargetVersion</b> = 0x18, 
<br />
&#160;&#160;<b>kPropertyTag_ExternalMemoryAttributes</b> = 0x19, 
<br />
&#160;&#160;<b>kPropertyTag_ReliableUpdateStatus</b> = 0x1a, 
<br />
&#160;&#160;<b>kPropertyTag_InvalidProperty</b> = 0xFF
<br />
 }<tr class="memdesc:gaa62a138d226f0b00f623df0db68d59a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Property tags.  <a href="group__property.html#gaa62a138d226f0b00f623df0db68d59a9">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:gaa62a138d226f0b00f623df0db68d59a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga251f4c6e2c97723c983d8653cb2ebad7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga251f4c6e2c97723c983d8653cb2ebad7"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#ga251f4c6e2c97723c983d8653cb2ebad7">_property_constants</a> { <br />
&#160;&#160;<b>kProperty_ReservedRegionsCount</b> = 2, 
<br />
&#160;&#160;<b>kProperty_FlashReservedRegionIndex</b> = 0, 
<br />
&#160;&#160;<b>kProperty_RamReservedRegionIndex</b> = 1, 
<br />
&#160;&#160;<b>kProperty_FlashVersionIdSizeInBytes</b> = 8
<br />
 }<tr class="memdesc:ga251f4c6e2c97723c983d8653cb2ebad7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Property constants. <br /></td></tr>
</td></tr>
<tr class="separator:ga251f4c6e2c97723c983d8653cb2ebad7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabf09c4f2591686a8726b39c68a0c4e82"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabf09c4f2591686a8726b39c68a0c4e82"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#gabf09c4f2591686a8726b39c68a0c4e82">_clock_flags</a> { <b>kClockFlag_HighSpeed</b> = (1 &lt;&lt; 0)
 }<tr class="memdesc:gabf09c4f2591686a8726b39c68a0c4e82"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bit positions for clock flags in configuration data. <br /></td></tr>
</td></tr>
<tr class="separator:gabf09c4f2591686a8726b39c68a0c4e82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga70ed342af49e1e23f81efa4604f17b86"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga70ed342af49e1e23f81efa4604f17b86"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#ga70ed342af49e1e23f81efa4604f17b86">_boot_flags</a> { <b>kBootFlag_DirectBoot</b> = (1 &lt;&lt; 0)
 }<tr class="memdesc:ga70ed342af49e1e23f81efa4604f17b86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bit positions for boot flags in configuration data. <br /></td></tr>
</td></tr>
<tr class="separator:ga70ed342af49e1e23f81efa4604f17b86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga906a4d1bf3fe9b557d30539dbcb00aef"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#ga906a4d1bf3fe9b557d30539dbcb00aef">_flash_constants</a> { <a class="el" href="group__property.html#gga906a4d1bf3fe9b557d30539dbcb00aefabffe836ad68c4115834337e39909dc4d">kBootloaderConfigAreaAddress</a> = (uint32_t)(APP_VECTOR_TABLE) + 0x3c0
 }<tr class="memdesc:ga906a4d1bf3fe9b557d30539dbcb00aef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flash constants.  <a href="group__property.html#ga906a4d1bf3fe9b557d30539dbcb00aef">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:ga906a4d1bf3fe9b557d30539dbcb00aef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga31f663ac6c0ef6751189f4384f693884"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#ga31f663ac6c0ef6751189f4384f693884">_external_memory_property_tags</a> { <br />
&#160;&#160;<a class="el" href="group__property.html#gga31f663ac6c0ef6751189f4384f693884a06976d6e2447f9804965772cd854e321">kExternalMemoryPropertyTag_InitStatus</a> = 0, 
<br />
&#160;&#160;<a class="el" href="group__property.html#gga31f663ac6c0ef6751189f4384f693884a3ef1b634a28aee5e652c864ad41cf538">kExternalMemoryPropertyTag_StartAddress</a> = 1, 
<br />
&#160;&#160;<a class="el" href="group__property.html#gga31f663ac6c0ef6751189f4384f693884ab1fa870ecaa0666b1041a5c660e38072">kExternalMemoryPropertyTag_MemorySizeInKbytes</a> = 2, 
<br />
&#160;&#160;<a class="el" href="group__property.html#gga31f663ac6c0ef6751189f4384f693884a78d7d3e197692ae9812fedb4b93c42ef">kExternalMemoryPropertyTag_PageSize</a> = 3, 
<br />
&#160;&#160;<a class="el" href="group__property.html#gga31f663ac6c0ef6751189f4384f693884a9df5862849389defc594a8f2629e71c3">kExternalMemoryPropertyTag_SectorSize</a> = 4, 
<br />
&#160;&#160;<a class="el" href="group__property.html#gga31f663ac6c0ef6751189f4384f693884a8f4c541694a6959754856072aef11a97">kExternalMemoryPropertyTag_BlockSize</a> = 5, 
<br />
&#160;&#160;<b>kExternalMemoryPropertyTag_Start</b> = kExternalMemoryPropertyTag_StartAddress, 
<br />
&#160;&#160;<b>kExternalMemoryPropertyTag_End</b> = kExternalMemoryPropertyTag_BlockSize
<br />
 }<tr class="memdesc:ga31f663ac6c0ef6751189f4384f693884"><td class="mdescLeft">&#160;</td><td class="mdescRight">External Memory Properties tag.  <a href="group__property.html#ga31f663ac6c0ef6751189f4384f693884">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:ga31f663ac6c0ef6751189f4384f693884"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga149b89efa982763a0f14c92329153963"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga149b89efa982763a0f14c92329153963"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>_ram_constants</b> { <br />
&#160;&#160;<b>kRAMCount</b> = 3, 
<br />
&#160;&#160;<b>kRAMCount</b> = 3
<br />
 }</td></tr>
<tr class="separator:ga149b89efa982763a0f14c92329153963"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac34ab99e17f84422bc0bd99fbfab5460"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#gac34ab99e17f84422bc0bd99fbfab5460">_property_store_tags</a> { <a class="el" href="group__property.html#ggac34ab99e17f84422bc0bd99fbfab5460a2fbd9e9b92466790b6d3860627b4e053">kPropertyStoreTag</a> = FOUR_CHAR_CODE('k', 'c', 'f', 'g')
 }</td></tr>
<tr class="separator:gac34ab99e17f84422bc0bd99fbfab5460"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:gad8dab4c1ea0544ba4b590f0417be98bd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad8dab4c1ea0544ba4b590f0417be98bd"></a>
const <a class="el" href="group__property.html#structproperty__interface__t">property_interface_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#gad8dab4c1ea0544ba4b590f0417be98bd">g_propertyInterface</a></td></tr>
<tr class="memdesc:gad8dab4c1ea0544ba4b590f0417be98bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Property interface. <br /></td></tr>
<tr class="separator:gad8dab4c1ea0544ba4b590f0417be98bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Command Availability</h2></td></tr>
<tr class="memitem:gae8ed53f7a6d58aed49cc54a7be663b4f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae8ed53f7a6d58aed49cc54a7be663b4f"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>_available_commands</b> { <b>kAvailableCommands</b>
 }</td></tr>
<tr class="separator:gae8ed53f7a6d58aed49cc54a7be663b4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Property Store</h2></td></tr>
<tr class="memitem:gab2c1ff4ec7df476e89c96d59f2791924"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab2c1ff4ec7df476e89c96d59f2791924"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#gab2c1ff4ec7df476e89c96d59f2791924">bootloader_property_load_user_config</a> (void)</td></tr>
<tr class="memdesc:gab2c1ff4ec7df476e89c96d59f2791924"><td class="mdescLeft">&#160;</td><td class="mdescRight">Early initialization function to get user configuration data. <br /></td></tr>
<tr class="separator:gab2c1ff4ec7df476e89c96d59f2791924"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9c84ad84ba2fe9411637a15cf296e679"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#ga9c84ad84ba2fe9411637a15cf296e679">bootloader_property_init</a> (void)</td></tr>
<tr class="memdesc:ga9c84ad84ba2fe9411637a15cf296e679"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the property store.  <a href="#ga9c84ad84ba2fe9411637a15cf296e679">More...</a><br /></td></tr>
<tr class="separator:ga9c84ad84ba2fe9411637a15cf296e679"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaecc85d4e904c0a47b8e44fff921656b1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#gaecc85d4e904c0a47b8e44fff921656b1">bootloader_property_get</a> (uint8_t tag, uint8_t memoryId, const void **value, uint32_t *valueSize)</td></tr>
<tr class="memdesc:gaecc85d4e904c0a47b8e44fff921656b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a property.  <a href="#gaecc85d4e904c0a47b8e44fff921656b1">More...</a><br /></td></tr>
<tr class="separator:gaecc85d4e904c0a47b8e44fff921656b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga71a0d09532837904427c735abd2176fc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#ga71a0d09532837904427c735abd2176fc">bootloader_property_set_uint32</a> (uint8_t tag, uint32_t value)</td></tr>
<tr class="memdesc:ga71a0d09532837904427c735abd2176fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a property.  <a href="#ga71a0d09532837904427c735abd2176fc">More...</a><br /></td></tr>
<tr class="separator:ga71a0d09532837904427c735abd2176fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Usage Information</h2>
<p>Properties of the bootloader. </p>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="structbootloader__configuration__data__t" id="structbootloader__configuration__data__t"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct bootloader_configuration_data_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>Format of bootloader configuration data on Flash. </p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a816d8d0795b50193b6b8e067a420da3f"></a>uint8_t</td>
<td class="fieldname">
bootFlags</td>
<td class="fielddoc">
[1e:1e] One's complemnt of direct boot flag, 0xFE represents direct boot </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="abb0fd0ee0b9f0e50903a9ca2c3862a83"></a>uint8_t</td>
<td class="fieldname">
canConfig1</td>
<td class="fielddoc">
[29:29] ClkSel[1], PropSeg[3], SpeedIndex[4] </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="ae199225a0a800345102a435e0d83ee6f"></a>uint16_t</td>
<td class="fieldname">
canConfig2</td>
<td class="fielddoc">
[2a:2b] Pdiv[8], Pseg1[3], Pseg2[3], rjw[2] </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a6889c380df6b643d81300cda2f310d69"></a>uint16_t</td>
<td class="fieldname">
canRxId</td>
<td class="fielddoc">
[2e:2f] rxId </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a1ab6d751b6dc108e893ebfbe5b865866"></a>uint16_t</td>
<td class="fieldname">
canTxId</td>
<td class="fielddoc">
[2c:2d] txId </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a8fd636a1a4cf13cd5dddc2639620150e"></a>uint8_t</td>
<td class="fieldname">
clockDivider</td>
<td class="fielddoc">
[1d:1d] One's complement of clock divider, zero divider is divide by 1 </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a439c3efc07a57164bfd8bae23905613b"></a>uint8_t</td>
<td class="fieldname">
clockFlags</td>
<td class="fielddoc">
[1c:1c] High Speed and other clock options </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a66bae183afe72a2bfb4296479ae60b26"></a>uint32_t</td>
<td class="fieldname">
crcByteCount</td>
<td class="fielddoc">
[08:0b] </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="aefb1b6651d6f16f3d1c8a2ee4e7f2631"></a>uint32_t</td>
<td class="fieldname">
crcExpectedValue</td>
<td class="fielddoc">
[0c:0f] </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a670e6beffbf25764aae6da2e42152455"></a>uint32_t</td>
<td class="fieldname">
crcStartAddress</td>
<td class="fielddoc">
[04:07] </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a94b54d54af4f5674b6bb77031aa4b868"></a>uint8_t</td>
<td class="fieldname">
enabledPeripherals</td>
<td class="fielddoc">
[10:10] </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a7b02a6d4fec555531ed35231b7fbce91"></a>uint8_t</td>
<td class="fieldname">
i2cSlaveAddress</td>
<td class="fielddoc">
[11:11] </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a21a52bbbfb590a6e3361cc8d6d08aca6"></a>uint32_t</td>
<td class="fieldname">
keyBlobPointer</td>
<td class="fielddoc">
[24:27] Holds a pointer value to the key blob array used to configure OTFAD </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a36201e0802661f58803850be757ff7e5"></a>uint32_t</td>
<td class="fieldname">
mmcauConfigPointer</td>
<td class="fielddoc">
[20:23] Holds a pointer value to the MMCAU configuration </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a0976e33e213bf38d277b829252a1ceaa"></a>uint8_t</td>
<td class="fieldname">
pad0</td>
<td class="fielddoc">
[1f:1f] Reserved, set to 0xFF </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a25e2be7e403f0b3769563e679051c9d7"></a>uint8_t</td>
<td class="fieldname">
pad1</td>
<td class="fielddoc">
[28:28] reserved </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a0a29ceccabd881b20104bf6c0725eb5c"></a>uint16_t</td>
<td class="fieldname">
peripheralDetectionTimeoutMs</td>
<td class="fielddoc">
<p>[12:13] Timeout in milliseconds for peripheral detection before jumping </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a0cd0aecced78273cc22ea6a628b9a14a"></a>uint32_t</td>
<td class="fieldname">
qspi_config_block_pointer</td>
<td class="fielddoc">
[30:33] QSPI config block pointer. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a1c50fcd1195659821729f52af8f3bb7d"></a>uint32_t</td>
<td class="fieldname">
tag</td>
<td class="fielddoc">
[00:03] Tag value used to validate the bootloader configuration data. Must be set to 'kcfg'. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="ac5a9cbe623eea88acaf0b030dacec232"></a>uint16_t</td>
<td class="fieldname">
usbPid</td>
<td class="fielddoc">
[16:17] </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="aaf233f50768b1b03d9fd2bdaf110a0a0"></a>uint32_t</td>
<td class="fieldname">
usbStringsPointer</td>
<td class="fielddoc">
[18:1b] </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="ab9e706caf8ba8873422add7c09da305d"></a>uint16_t</td>
<td class="fieldname">
usbVid</td>
<td class="fielddoc">
to application code <p>[14:15] </p>
</td></tr>
</table>

</div>
</div>
<a name="structreserved__region__t" id="structreserved__region__t"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct reserved_region_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>Structure of a reserved regions entry. </p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a4f8180c9e56e1eedbe45e7a2a9c25d85"></a>uint32_t</td>
<td class="fieldname">
endAddress</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a3a3fedf4660d77a61d25a4a70a2dfe3d"></a>uint32_t</td>
<td class="fieldname">
startAddress</td>
<td class="fielddoc">
</td></tr>
</table>

</div>
</div>
<a name="structunique__device__id__t" id="structunique__device__id__t"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct unique_device_id_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>Structure of a unique device id. </p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a21b8cc4fc17cdc79ebcacb5cc6ab2b2f"></a>uint32_t</td>
<td class="fieldname">
uidh</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="af8a7f0810786f02b0c5ed14d6d53e3c9"></a>uint32_t</td>
<td class="fieldname">
uidl</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a11fbc2e81ed304e6ef0c68c6a1f72519"></a>uint32_t</td>
<td class="fieldname">
uidmh</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a5db6dd42f384f95a00097a5d27974f8e"></a>uint32_t</td>
<td class="fieldname">
uidml</td>
<td class="fielddoc">
</td></tr>
</table>

</div>
</div>
<a name="structexternal__memory__property__store__t" id="structexternal__memory__property__store__t"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct external_memory_property_store_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>Exernal Memory attribute store. </p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a0da8b213f7b66ef0196483046b78906c"></a>uint32_t</td>
<td class="fieldname">
availableAttributesFlag</td>
<td class="fielddoc">
Available Atrributes, bit map. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="ab6558f40a619c2502fbc24c880fd4fb0"></a>uint32_t</td>
<td class="fieldname">
blockSize</td>
<td class="fielddoc">
block size of external memory </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="ab5b3621a9122b3bceff588d8a1dd0f2e"></a>uint32_t</td>
<td class="fieldname">
flashSizeInKB</td>
<td class="fielddoc">
flash size of external memory </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a0280e51e144c396db5421a34d7c0db99"></a>uint32_t</td>
<td class="fieldname">
pageSize</td>
<td class="fielddoc">
page size of external memory </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a0531bf8e2d0ac7dbf0d6af9b74a6ae0f"></a>uint32_t</td>
<td class="fieldname">
sectorSize</td>
<td class="fielddoc">
sector size of external memory </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a3a3fedf4660d77a61d25a4a70a2dfe3d"></a>uint32_t</td>
<td class="fieldname">
startAddress</td>
<td class="fielddoc">
start Address of external memory </td></tr>
</table>

</div>
</div>
<a name="structproperty__store__t" id="structproperty__store__t"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct property_store_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>Structure of property store. </p>
</div><div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Collaboration diagram for property_store_t:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="structproperty__store__t__coll__graph.svg" width="528" height="292"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a0f7ef76c120b4804cb53886d53cca8d5"></a>uint32_t</td>
<td class="fieldname">
availableCommands</td>
<td class="fielddoc">
verificaton. Writable by host. <p>Bit mask of the available commands. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a0b66bd4af2c9c9f2aa69a4a5918b5068"></a>uint32_t</td>
<td class="fieldname">
availablePeripherals</td>
<td class="fielddoc">
<p>The set of peripherals supported available on this chip. See enum _peripheral_types in <a class="el" href="bl__peripheral_8h_source.html">bl_peripheral.h</a>. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a8fd34546515d98dda22289cad4759b48"></a><a class="el" href="group__bl__core.html#unionstandard__version__t">standard_version_t</a></td>
<td class="fieldname">
bootloaderVersion</td>
<td class="fielddoc">
Current bootloader version. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="ab8f88f5faf87a0ac36764f4e979abda5"></a><a class="el" href="group__property.html#structbootloader__configuration__data__t">bootloader_configuration_data_t</a></td>
<td class="fieldname">
configurationData</td>
<td class="fielddoc">
Configuration data from flash address 0x3c0-0x3ff in sector 0 (64 bytes max) </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a3b72851f0e70f95aa9457174bf2b870e"></a>uint32_t</td>
<td class="fieldname">
crcCheckStatus</td>
<td class="fielddoc">
Status code from the last CRC check operation. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="ac9da9d88938e2daa05548a1f2dad9af0"></a><a class="el" href="group__property.html#structexternal__memory__property__store__t">external_memory_property_store_t</a></td>
<td class="fieldname">
externalMemoryPropertyStore</td>
<td class="fielddoc">
Property store for external memory. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a160409582057f034dc77514bea39df19"></a>uint32_t</td>
<td class="fieldname">
flashAccessSegmentCount</td>
<td class="fielddoc">
The count of flash access segment within flash module. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="aa8e118fd434767eeb3d5c888985b6776"></a>uint32_t</td>
<td class="fieldname">
flashAccessSegmentSize</td>
<td class="fielddoc">
The size in bytes of one segment of flash. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a256b46c10a456eea784c059fa762f5ff"></a>uint32_t</td>
<td class="fieldname">
flashBlockCount</td>
<td class="fielddoc">
Number of blocks in the flash array. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a20237f1137f92cbe8175d90eeabc8c22"></a>uint32_t</td>
<td class="fieldname">
flashBlockSize</td>
<td class="fielddoc">
The size in bytes of one block of program flash. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a21050ab4a037c03f5e510e0677422e4b"></a>uint32_t</td>
<td class="fieldname">
flashFacSupport</td>
<td class="fielddoc">
Boolean indicating whether the FAC feature is supported. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a9e7087866e89a22f46ccc5b1ff279835"></a>uint32_t</td>
<td class="fieldname">
flashReadMargin</td>
<td class="fielddoc">
The margin level setting for flash erase and program Verify CMDs. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a4b263a0d143e7c4133e34f97476e0fa6"></a>uint32_t</td>
<td class="fieldname">
flashSectorSize</td>
<td class="fielddoc">
The size in bytes of one sector of program flash. This is the minimum erase size. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="aa9359510dcdf3830e953a73affe80420"></a>uint32_t</td>
<td class="fieldname">
flashSizeInBytes</td>
<td class="fielddoc">
Size in bytes of program flash. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="ae3f72d4503ede56ae5e15511161f7042"></a>uint32_t</td>
<td class="fieldname">
flashStartAddress</td>
<td class="fielddoc">
Start address of program flash. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="ac518256682cac856506712c25ad52a23"></a>uint32_t</td>
<td class="fieldname">
qspiInitStatus</td>
<td class="fielddoc">
Result of QSPI+OTFAD init during bootloader startup. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a4dbf33582cbd16a11b045c108aa52e7d"></a>uint32_t</td>
<td class="fieldname">
ramSizeInBytes[kRAMCount]</td>
<td class="fielddoc">
Size in bytes of RAM. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="aa46ce4331c69320680f54bc905061b82"></a>uint32_t</td>
<td class="fieldname">
ramStartAddress[kRAMCount]</td>
<td class="fielddoc">
Start address of RAM. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a540ba7cbd17f877a3bd37b1102f3bc49"></a>uint32_t</td>
<td class="fieldname">
reliableUpdateStatus</td>
<td class="fielddoc">
Status of reliable update. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="ae9a3ec66cedd75d48ed911f01eaef3da"></a><a class="el" href="group__property.html#structreserved__region__t">reserved_region_t</a></td>
<td class="fieldname">
reservedRegions[kProperty_ReservedRegionsCount]</td>
<td class="fielddoc">
Flash and Ram reserved regions. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a1ae5e9ed26cac44746aff05a16e3707f"></a><a class="el" href="group__bl__core.html#unionstandard__version__t">standard_version_t</a></td>
<td class="fieldname">
serialProtocolVersion</td>
<td class="fielddoc">
Serial protocol version number. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a33fe87bca8f1472c07c3ec303a798b75"></a><a class="el" href="group__bl__core.html#unionstandard__version__t">standard_version_t</a></td>
<td class="fieldname">
targetVersion</td>
<td class="fielddoc">
Target version number. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="af14cd3769bf7a3223740fc63723fd75d"></a><a class="el" href="group__property.html#structunique__device__id__t">unique_device_id_t</a></td>
<td class="fieldname">
UniqueDeviceId</td>
<td class="fielddoc">
Unique identification for the device. </td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="ab1e751bdac45102cbb2dae3e99f54f2d"></a>uint32_t</td>
<td class="fieldname">
verifyWrites</td>
<td class="fielddoc">
<p>Boolean controlling whether the bootloader will verify writes to flash. Non-zero enables </p>
</td></tr>
</table>

</div>
</div>
<a name="structexternal__memory__property__interface__t" id="structexternal__memory__property__interface__t"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct external_memory_property_interface_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>External Memory properties interface. </p>
</div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a7c1c07009dcc624f8a93d31b5d8484f5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7c1c07009dcc624f8a93d31b5d8484f5"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>memoryId</b></td></tr>
<tr class="separator:a7c1c07009dcc624f8a93d31b5d8484f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fcee1d89b5b4708fbc9ad683da2de15"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9fcee1d89b5b4708fbc9ad683da2de15"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><b>get</b> )(uint32_t tag, uint32_t *value)</td></tr>
<tr class="separator:a9fcee1d89b5b4708fbc9ad683da2de15"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>

</div>
</div>
<a name="structproperty__interface__t" id="structproperty__interface__t"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct property_interface_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>Interface to property operations. </p>
</div><div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for property_interface_t:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="structproperty__interface__t__coll__graph.svg" width="746" height="292"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:ab8d7d5d41d0864c89b85ec3fae7291b7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab8d7d5d41d0864c89b85ec3fae7291b7"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#ab8d7d5d41d0864c89b85ec3fae7291b7">load_user_config</a> )(void)</td></tr>
<tr class="memdesc:ab8d7d5d41d0864c89b85ec3fae7291b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load the user configuration data. <br /></td></tr>
<tr class="separator:ab8d7d5d41d0864c89b85ec3fae7291b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa46715850387c99c7e56add19eca83e5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa46715850387c99c7e56add19eca83e5"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#aa46715850387c99c7e56add19eca83e5">init</a> )(void)</td></tr>
<tr class="memdesc:aa46715850387c99c7e56add19eca83e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize. <br /></td></tr>
<tr class="separator:aa46715850387c99c7e56add19eca83e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a319313a0c62c710e68dd42ffb7555bf2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a319313a0c62c710e68dd42ffb7555bf2"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#a319313a0c62c710e68dd42ffb7555bf2">get</a> )(uint8_t tag, uint8_t id, const void **value, uint32_t *valueSize)</td></tr>
<tr class="memdesc:a319313a0c62c710e68dd42ffb7555bf2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get property. <br /></td></tr>
<tr class="separator:a319313a0c62c710e68dd42ffb7555bf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af607c8268e93ae68397042d2e7c2ca35"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af607c8268e93ae68397042d2e7c2ca35"></a>
<a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#af607c8268e93ae68397042d2e7c2ca35">set_uint32</a> )(uint8_t tag, uint32_t value)</td></tr>
<tr class="memdesc:af607c8268e93ae68397042d2e7c2ca35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set uint32_t property. <br /></td></tr>
<tr class="separator:af607c8268e93ae68397042d2e7c2ca35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab41ec4771b66555a4c1ccc8becc24681"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab41ec4771b66555a4c1ccc8becc24681"></a>
<a class="el" href="group__property.html#structproperty__store__t">property_store_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__property.html#ab41ec4771b66555a4c1ccc8becc24681">store</a></td></tr>
<tr class="memdesc:ab41ec4771b66555a4c1ccc8becc24681"><td class="mdescLeft">&#160;</td><td class="mdescRight">The property store. <br /></td></tr>
<tr class="separator:ab41ec4771b66555a4c1ccc8becc24681"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="ga31f663ac6c0ef6751189f4384f693884"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__property.html#ga31f663ac6c0ef6751189f4384f693884">_external_memory_property_tags</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>External Memory Properties tag. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="gga31f663ac6c0ef6751189f4384f693884a06976d6e2447f9804965772cd854e321"></a>kExternalMemoryPropertyTag_InitStatus&#160;</td><td class="fielddoc">
<p>Init status tag. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga31f663ac6c0ef6751189f4384f693884a3ef1b634a28aee5e652c864ad41cf538"></a>kExternalMemoryPropertyTag_StartAddress&#160;</td><td class="fielddoc">
<p>Start address tag. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga31f663ac6c0ef6751189f4384f693884ab1fa870ecaa0666b1041a5c660e38072"></a>kExternalMemoryPropertyTag_MemorySizeInKbytes&#160;</td><td class="fielddoc">
<p>Memory size tag. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga31f663ac6c0ef6751189f4384f693884a78d7d3e197692ae9812fedb4b93c42ef"></a>kExternalMemoryPropertyTag_PageSize&#160;</td><td class="fielddoc">
<p>Pag size tag. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga31f663ac6c0ef6751189f4384f693884a9df5862849389defc594a8f2629e71c3"></a>kExternalMemoryPropertyTag_SectorSize&#160;</td><td class="fielddoc">
<p>Sector size tag. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga31f663ac6c0ef6751189f4384f693884a8f4c541694a6959754856072aef11a97"></a>kExternalMemoryPropertyTag_BlockSize&#160;</td><td class="fielddoc">
<p>Block size tag. </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="ga906a4d1bf3fe9b557d30539dbcb00aef"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__property.html#ga906a4d1bf3fe9b557d30539dbcb00aef">_flash_constants</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Flash constants. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="gga906a4d1bf3fe9b557d30539dbcb00aefabffe836ad68c4115834337e39909dc4d"></a>kBootloaderConfigAreaAddress&#160;</td><td class="fielddoc">
<p>The bootloader configuration data location . </p>
<p>A User Application should populate a BootloaderConfigurationData struct at 0x3c0 from the beginning of the application image which must be the User Application vector table for the flash-resident bootloader collaboration. </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="ga326fa6765219cb92ffe88f4b278a9db8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__property.html#ga326fa6765219cb92ffe88f4b278a9db8">_property_errors</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Property store status codes. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="gga326fa6765219cb92ffe88f4b278a9db8a540263d2a8073c4722e48ea95ab275e7"></a>kStatus_ReadOnlyProperty&#160;</td><td class="fielddoc">
<p>Property is read-only. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga326fa6765219cb92ffe88f4b278a9db8a0b21eb7761eeea48cf273146faeb2bdc"></a>kStatus_InvalidPropertyValue&#160;</td><td class="fielddoc">
<p>Property value is out of range. </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="gac34ab99e17f84422bc0bd99fbfab5460"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__property.html#gac34ab99e17f84422bc0bd99fbfab5460">_property_store_tags</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ggac34ab99e17f84422bc0bd99fbfab5460a2fbd9e9b92466790b6d3860627b4e053"></a>kPropertyStoreTag&#160;</td><td class="fielddoc">
<p>Tag value used to validate the bootloader configuration data. </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="gaa62a138d226f0b00f623df0db68d59a9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__property.html#gaa62a138d226f0b00f623df0db68d59a9">_property_tag</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Property tags. </p>
<dl class="section note"><dt>Note</dt><dd>Do not change any tag values. Add tags at the end. </dd></dl>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gaecc85d4e904c0a47b8e44fff921656b1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> bootloader_property_get </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>tag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>memoryId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void **&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>valueSize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get a property. </p>
<p>Example calling sequence for uint32_t property: </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;void * value;</div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;uint32_t valueSize;</div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;status_t status = bootloader_property_get(sometag, &amp;value, &amp;valueSize);</div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;uint32_t result = *(uint32_t *)value;</div></div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">tag</td><td>Tag of the requested property </td></tr>
    <tr><td class="paramname">memoryId</td><td>Id for specified external memory, for example: 1 represent QuadSPI 0 </td></tr>
    <tr><td class="paramname">value</td><td>Pointer to where to write a pointer to the result, may be NULL </td></tr>
    <tr><td class="paramname">valueSize</td><td>Size in bytes of the property value, may be NULL</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">kStatus_Success</td><td></td></tr>
    <tr><td class="paramname">kStatus_UnknownProperty</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga9c84ad84ba2fe9411637a15cf296e679"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> bootloader_property_init </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize the property store. </p>
<p>Initialize flash properties.</p>

</div>
</div>
<a class="anchor" id="ga71a0d09532837904427c735abd2176fc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> bootloader_property_set_uint32 </td>
          <td>(</td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>tag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set a property. </p>
<p>Only uint32_t properties can be set with this function.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">tag</td><td>Tag of the property to set </td></tr>
    <tr><td class="paramname">value</td><td>New property value</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">kStatus_Success</td><td></td></tr>
    <tr><td class="paramname">kStatus_UnknownProperty</td><td></td></tr>
    <tr><td class="paramname">kStatus_ReadOnlyProperty</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Mon Mar 7 2016 16:48:23 for Kinetis Bootloader by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
